package com.gzhryc.shared_device.oem.code.member.dao.db;

import java.util.Date;

import com.gzhryc.common.NumberTools;
import com.gzhryc.jdbc.annotaion.Column;
import com.gzhryc.jdbc.annotaion.DateBranchTable;
import com.gzhryc.jdbc.annotaion.Id;
import com.gzhryc.jdbc.annotaion.Table;
import com.gzhryc.jdbc.enums.DateBranchTableType;
import com.gzhryc.shared_device.base.enums.EPayType;
import com.gzhryc.shared_device.oem.code.member.dao.enums.MemberTransferMoneyOrderEnum;

@DateBranchTable(type = DateBranchTableType.year)
@Table(name="member_transfer_money_order")
public class MemberTransferMoneyOrder {

    @Id(auto = false)
    @Column(name = "trade_no")
    protected String tradeNo;

    @Column(name = "member_id")
    protected Long memberId;

    @Column(name = "member_name", note = "会员姓名")
    protected String memberName;

    @Column(name = "member_phone", note = "会员手机号")
    protected String memberPhone;

    @Column(name = "app_id",notNull = true,length=32,note = "应用ID")
    protected String appId;
    
    @Column(name = "app_type",notNull = true,note = "应用类型")
    protected Integer appType;

    @Column(name = "money", notNull = true, note = "提现金额")
    protected Integer money;

    @Column(name = "profit_proportion", notNull = true, defVal = "0.0", note = "提现手续费比例")
    protected Double profitProportion;

    @Column(name = "receipt_money", notNull = true, note = "实收金额")
    protected Integer receiptMoney;

    @Column(name = "pay_type", notNull = true, defVal = "3",note = "支付类型")
    protected Integer payType;

    @Column(name = "proof_img1", length = 255, note = "凭证图片1，会员信息截图")
    protected String proofImg1;

    @Column(name = "proof_img2", length = 255, note = "凭证图片2，转账截图")
    protected String proofImg2;

    @Column(name = "proof_img3", length = 255, note = "凭证图片3，聊天截图")
    protected String proofImg3;

    @Column(name = "handle_type", notNull = true, defVal = "1", note = "处理方式，1：系统自动处理，2：人工处理")
    protected Integer handleType;

    @Column(name = "handle_date", note = "处理时间")
    protected Date handleDate;

    @Column(length = 255, note = "操作用户")
    protected String operator;

    @Column(name = "reject_note", length = 255, note = "驳回原因")
    protected String rejectNote;

    @Column(notNull = true, defVal = "1", note = "状态")
    protected Integer state;

    @Column(name = "update_date", autoUpdateTime = true)
    protected Date updateDate;

    @Column(name = "create_date")
    protected Date createDate;

    public String getTradeNo() {
        return tradeNo;
    }

    public void setTradeNo(String tradeNo) {
        this.tradeNo = tradeNo;
    }

    public Long getMemberId() {
        return memberId;
    }

    public void setMemberId(Long memberId) {
        this.memberId = memberId;
    }

    public String getMemberName() {
        return memberName;
    }

    public void setMemberName(String memberName) {
        this.memberName = memberName;
    }

    public String getMemberPhone() {
        return memberPhone;
    }

    public void setMemberPhone(String memberPhone) {
        this.memberPhone = memberPhone;
    }

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public Integer getAppType() {
		return appType;
	}

	public void setAppType(Integer appType) {
		this.appType = appType;
	}

	public Integer getMoney() {
        return money;
    }

    public void setMoney(Integer money) {
        this.money = money;
    }

    public Double getProfitProportion() {
        return profitProportion;
    }

    public void setProfitProportion(Double profitProportion) {
        this.profitProportion = profitProportion;
    }

    public Integer getReceiptMoney() {
        return receiptMoney;
    }

    public void setReceiptMoney(Integer receiptMoney) {
        this.receiptMoney = receiptMoney;
    }

    public Integer getPayType() {
        return payType;
    }

    public void setPayType(Integer payType) {
        this.payType = payType;
    }

    public String getProofImg1() {
        return proofImg1;
    }

    public void setProofImg1(String proofImg1) {
        this.proofImg1 = proofImg1;
    }

    public String getProofImg2() {
        return proofImg2;
    }

    public void setProofImg2(String proofImg2) {
        this.proofImg2 = proofImg2;
    }

    public String getProofImg3() {
        return proofImg3;
    }

    public void setProofImg3(String proofImg3) {
        this.proofImg3 = proofImg3;
    }

    public Integer getHandleType() {
        return handleType;
    }

    public void setHandleType(Integer handleType) {
        this.handleType = handleType;
    }

    public Date getHandleDate() {
        return handleDate;
    }

    public void setHandleDate(Date handleDate) {
        this.handleDate = handleDate;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public String getRejectNote() {
        return rejectNote;
    }

    public void setRejectNote(String rejectNote) {
        this.rejectNote = rejectNote;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Date getUpdateDate() {
        return updateDate;
    }

    public void setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public String getMoneyStr(){
        return NumberTools.getMoneyStr(this.money);
    }

    public String getReceiptMoneyStr(){
        return NumberTools.getMoneyStr(this.receiptMoney);
    }

    public String getStateName(){
        return MemberTransferMoneyOrderEnum.State.note(this.state);
    }

    public String getHandleTypeName(){
        return MemberTransferMoneyOrderEnum.HandleType.note(this.handleType);
    }

    public String getPayTypeName(){
        return EPayType.note(this.payType);
    }
}
